Several attempts have already been made to establish arrangements in which simply typing the required password is not sufficient to gain access to a program. For example, systems have been proposed which require that a special hardware unit is connected to the computer to make it possible to utilize a given program. This unit may take the form of a blind plug (also termed "dongle"), for example, which is connected directly to one of the input-output terminals of the computer, and containing fixed tables, identity number, or the like, stored in an internal memory from which information is read upon the request of a programmed additional routine included for this purpose in the application program in question. The unit may also take the form of a card reader station, or the like, in which a card is inserted, the matter stored on the card in principle being similar to that of the blind plug above. Usually the checking procedure involves that the additional routine of the program makes a direct comparison of the program identity, for example, and a corresponding item of information present in the stored table.
An example of such an arrangement is described in published DE patent application no. 44 19 115 wherein the matter stored in a chipcard is read, and if the expected content exists, this fact is regarded as being sufficient proof of identity for the use of the program. The checking may be done when a program is installed, or during the utilization thereof. Published DE patent application no. 42 39 865 discloses a similar system which in addition provides an arrangement by which the number of software installations performed are noted, making it possible to limit the number thereof.
The additional routine which must be included in the software constitutes the main disadvantage of all such known devices. By simply removing such routines the software will operate normally, and the protection against unauthorized utilization would be lost. Also, during the exchange of data between the processor of the computer and the memory of the unit or card, it is possible to observe the information, and as the course of this information exchanged is the same each time the program is used, it is possible also to reveal the matter stored in the external memory. Even if the contents of the memory is encrypted in one way or another, such kind of recurrence across the communication interface makes it possible to simulate a corresponding hardware unit, for example, or "break the code" by means of relatively modest computing power.
In the arrangement described in published GB patent application no. 2 163 577 some of the flaws of the above type of hardware units are avoided by employing certain crypto techniques, and by accommodating several storage means as well as a processor of its own in a tamper-proof housing. The processor in the housing makes use of a decryption key which is stored in the housing, and of instructions which also are stored in the housing, to decrypt and execute by itself an encrypted application program or program module transferred from the host computer to which the housing is connected. Regarding the crypto technique itself, the arrangement according to GB patent application no. 2 163 577 uses a so-called DES algorithm (DES--Data Encryption Standard, Bureau of Standards, U.S.A., 1977) for the encryption of the application software, and the corresponding inverse DES algorithm for decrypting the same, whereby one and the same key is used for both the encryption and the decryption. Hence, the DES standard is symmetrical, and the security resides only in the key itself. Therefore, not to give away this security, the encryption also of the DES key itself is proposed in the GB patent application. For this purpose it is used a so-called RSA algorithm (RSA--Rivest, Shamir, Adleman) having two different keys, that is, one for the encryption and another for the decryption, the deduction of one key from the other being practically impossible. Hence, the RSA crypto system is an asymmetric, two-key system (also termed public-key/private-key crypto system), and in the case of the arrangement according to GB patent application no. 2 163 577, one key only is used which, per se, may be known (the public key) to encrypt the DES key while another key which the user must not get to know (the private or secret key) is used to decrypt the DES key. The latter key, i.e. the secret key, is stored in a memory in the tamper-proof housing and is fetched by the processor in the housing when needed to decrypt encrypted DES keys, each of which belonging to an encrypted application program, for the purpose of being able to execute such an application program.
In the arrangement according to GB patent application no. 2 163 577, however, it is also possible to monitor the communication between the external unit and the host computer, and the course of communication is identical each time the same encrypted program module is to be executed. Since complete program modules are encrypted and such modules make up a relatively large part of the software, this kind of predictable recurrence across the communication interface assists in the identification of respective program modules which then easily can be separated from the rest of the software, to be processed, e.g. in off-line mode, for the purpose of decrypting the encrypted program module once and for all. Moreover, external decryption, storage and execution of complete application program modules would take an unacceptably long period of time, unless the circuits in the housing possess a sufficiently high data processing capacity and the communication with the host computer from which the program modules originate, is very fast.
An object of the present invention is to provide a crypto arrangement giving suppliers and/or proprietors of the software an improved possibility of protecting their product against unauthorized utilization, and which does not suffer from the drawbacks of prior art, in such a manner that the software can be copied and distributed without restrictions, but yet not be used unless the necessary permission is present.
A further object of the invention is to provide a crypto arrangement of a universal nature which is able to accommodate not only individual software modules but entire program packages, wherein permission of use may be assigned at different levels, such as for selected parts of a program package.
These and other objects will appear more clearly from the description below of examples of preferred embodiments of the present invention as seen in relation with the accompanying drawings.